/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Filters;

import beans.GastosReceitas;
import beans.Usuario;
import net.sourceforge.floggy.persistence.Filter;
import net.sourceforge.floggy.persistence.Persistable;

/**
 *
 * @author familia
 */
public class GastoReceitasFilter implements Filter {

    Usuario usuario;
    String filtro = "";
    char tipo = ' ';

    public GastoReceitasFilter(Usuario usuario, String filtro, char tipo) {
        this.usuario = usuario;
        this.filtro = filtro;
        this.tipo = tipo;
    }

    public boolean matches(Persistable persistable) {
        GastosReceitas gr = (GastosReceitas) persistable;
        switch (tipo) {
            case 'I':
                return (gr.getId() == (Integer.parseInt(filtro))) && (usuario.getId() == gr.getUsuario().getId());
            case 'N':
                return (gr.getNome().equalsIgnoreCase(filtro)) && (usuario.getId() == gr.getUsuario().getId());
            case 'U':
                return (usuario.getId() == gr.getUsuario().getId());
            case 'C':
                return (usuario.getId() == gr.getUsuario().getId()) && (gr.isCompensado());
            case 'A':
                return (usuario.getId() == gr.getUsuario().getId()) && (!gr.isCompensado());
            case ' ':
                return (usuario.getId() == gr.getUsuario().getId());
            case 'T':
                return (usuario.getId() == gr.getUsuario().getId()) && (gr.getTipoGR().getDebitoCredito() == filtro.charAt(0));
            default:
                return (usuario.getId() == gr.getUsuario().getId());
        }
    }
}
